Oberon-2 is clean and simple programming language.

This is portable compiler that translates Oberon-2 into bytecode, which
can be either interpreted or dynamically translated into machine code.
Dynamic translation uses a portable interface modelled on the one in GNU
Lightning, but is so far implemented only on x86 machines.  The
implementation includes a full garbage collector, and comes with
profiling tools and a simple GUI debugger.

This implementation of the Oberon-2 language does not include a version
of the Oberon-2 operating system and programming environment; instead,
programs are edited with the tools of the host operating system and
compiled into executables that run like other programs on the host
system.

The compiler is written in Objective Caml, and the runtime system is
written in C.
